The present invention relates generally to process control systems and, more particularly, to a system that monitors and records modifications to the process to provide version control therefor.
Process control systems, like those used in chemical, petroleum or other processes, typically include at least one centralized process controller communicatively coupled to at least one host or operator workstation and to one or more field devices via analog and/or digital buses or other communication lines or channels. The field devices, which may be, for example, valves, valve positioners, switches, and transmitters (e.g., temperature, pressure and flow rate sensors), perform functions within the process such as opening or closing valves and measuring process parameters. The process controller receives signals indicative of process measurements made by the field devices and/or other information pertaining to the field devices via an input/output (I/O) device, uses this information to implement a control routine and then generates control signals which are sent over the buses or other communication channels via the input/output device to the field devices to control the operation of the process. Information from the field devices and the controller is typically made available to one or more applications executed by the operator workstation to enable an operator to perform any desired function with respect to the process, such as viewing the current state of the process, modifying the operation of the process, and configuring the process.
Several software tools have been developed to assist the operator in configuring and otherwise modifying the process. Such tools provide a graphical representation of the process that displays each function performed by the field devices and the controller as a respective item or object. The items may be organized and set forth in a hierarchal environment such that, for instance, all of the functions performed by a particular field device are grouped or listed together. The items may also be displayed within a control template such that items are shown in their functional relationships in the process. For example, a control template may constitute a sequential flow chart having a series of interconnected blocks representative of multiple items having input and output relationships defined by interconnecting lines.
Each item (as well as any input or output relationship between items) is defined by data stored in a configuration database associated with the software configuration tools. The database as well as the software tools are made available via a network that typically supports multiple workstations for numerous process operators and other users, each of whom has access to the data for administrative, process configuration, and other purposes. Modification of the data in the configuration database may, however, lead to version control problems when, for example, one operator is unaware of the work of another operator, or when too many modifications have occurred to determine how to return to a previous configuration or version of the process. For instance, a prior process control system utilizing the Delta(trademark) software available from Fisher-Rosemont Systems, Inc., merely stores data indicative of the date on which the modification was made and the user responsible for the modification. Such data does not typically enable a user to reconstruct the configuration of prior versions of the process.
These version control concerns have been addressed in the software development context by configuration management tools, such as ClearCase from Rational and Microsoft Visual SourceSafe(copyright). More particularly, these products track, control, and manage the development of a software routine in order to assist in subsequent debugging and development efforts. To this end, data indicative of both the current and past versions of the code is stored. Such configuration management tools, however, are usually limited to textual presentations of the data and, thus, are not well-suited for storing and displaying information that is typically set forth in a graphical manner.
A graphical interface has been developed by National Instruments to facilitate programming in connection with instrumentation systems. According to information gathered from the National Instruments Internet website (www.ni.com), a product marketed under the name xe2x80x9cLabVIEWxe2x80x9d utilizes a graphical programming language, the G language, to support this graphical programming interface. The website further describes the LabVIEW product as including a development tool that allows the programmer to graphically compare the differences between two files of code set forth in the G language.
In accordance with one aspect of the present invention, a system useful for controlling a process includes a computer-readable medium, a processor in communication with the computer-readable medium, and first and second databases. The first database stores first data representative of a first configuration of the process, and the second database stores second data representative of a second configuration of the process. The inventive system further includes a configuration routine and a version control routine, both of which are stored in the computer-readable medium and configured to be executed by the processor. The configuration routine facilitates a modification of the first configuration of the process and the version control routine stores in the second database third data indicative of the modification of the first configuration of the process.
According to a preferred embodiment, the first database includes a configuration database such that the first configuration of the process corresponds with a current configuration version. The second database preferably includes a version control database such that the second configuration of the process corresponds with a past configuration version.
According to another preferred embodiment, the first and second configurations of the process include first and second pluralities of process items, respectively. Each process item of the first and second pluralities of process items has a respective item configuration such that the first configuration of the process includes the item configuration of each process item of the first plurality of process items, and the second configuration of the process includes the item configuration of each process item of the second plurality of process items.
According to yet another preferred embodiment, the version control routine monitors the modification of the first configuration of the process to gather the third data. The version control routine may monitor the modification by imposing a check-out/check-in procedure on the configuration routine. Alternatively, the check-out/check-in procedure is automatic.